package com.sdhs.costcontrol.domain;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.sdhs.common.annotation.Excel;
import com.sdhs.common.core.domain.BaseEntity;
import lombok.Data;
import org.springframework.data.annotation.Transient;

import java.math.BigDecimal;

/**
 * 采购计划-子-清单对象 gc_control_plan_list
 *
 * @author andong
 * @date 2025-03-14
 */
@Data
public class GcControlPlanList extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 采购计划明细主键
     */
    private Long id;

    /**
     * 关联采购计划id
     */
    @Excel(name = "关联项目id")
    private Long projectId;

    /**
     * 子目名称
     */
    @Excel(name = "子目名称")
    private String subheadingsName;

    /**
     * 子目号
     */
    @Excel(name = "子目号")
    private String subheadingsNumber;

    /**
     * 品牌
     */
    @Excel(name = "品牌")
    private String brandName;

    /**
     * 型号
     */
    @Excel(name = "型号")
    private String modelNumber;

    /**
     * 单位
     */
    @Excel(name = "单位")
    private String unit;

    /**
     * 采购数量
     */
    @Excel(name = "采购数量")
    private BigDecimal purchaseQuantity;

    /**
     * 合同价格
     */
    @Excel(name = "合同价格")
    private BigDecimal contractPrice;

    /**
     * 标前成本价
     */
    @Excel(name = "标前成本价")
    private BigDecimal costPrice;

    /**
     * 最终采购单价
     */
    @Excel(name = "最终采购单价")
    private BigDecimal finalPrice;

    /**
     * 到货数量
     */
    @Excel(name = "到货数量")
    private BigDecimal arrivalQuantity;

    /**
     * 总到货数量
     */
    @Excel(name = "总到货数量")
    private BigDecimal totalArrivalQuantity;

    /**
     * 数量
     */
    @Transient
    private String quantity;
    /**
     * 剩余数量
     */
    @Transient
    private String totalQuantity;
    /**
     * 采购数量
     */
    @Transient
    private Long totalPurchaseQuantity;
    /**
     * 供货数量
     */
    @Transient
    private Long totalSupplyQuantity;
    /**
     * 库存数量数量
     */
    @Transient
    private Long inventoryQuantity;
    /**
     * 税率
     */
    @Excel(name = "税率")
    private String taxRate;

    /**
     * 总额
     */
    @Excel(name = "总额")
    private BigDecimal totalAmount;

    /**
     * 供货数量
     */
    @Excel(name = "供货数量")
    private BigDecimal supplyQuantity;

    /**
     * 库存数量
     */
    private BigDecimal stockQuantity;

    /**
     * 父节点-子目号
     */
    @Excel(name = "父节点-子目号")
    private String parentSubheadings;

    /**
     * 关联清单id
     */
    @Excel(name = "关联清单id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long manageId;

    /**
     * 采购计划id
     */
    @Excel(name = "采购计划id")
    private Long planId;
    /**
     * 计划类别
     */
    @Excel(name = "计划类别")
    private String procurementType;

    /*服务单价*/
    private String otherPrice;
    /*施工单价*/
    private String constructionPrice;
    /*设备单价*/
    private String devicePrice;
}
